[GAS]n時間後に削除されるトリガーを作成する方法
- t_o_dと申します。
- GASで定期実行を行う仕組みとしてトリガー機能があります。
- そこで今回はn時間後に削除されるトリガーを作成する方法を記録いたします。
環境
- mac OS Monterey 13.2
- Google Apps Script
手順
スクリプトエディタ起動
- Googleドライブを開き、新規で「Google Apps Script」を作成してスクリプトエディタを起動してください。
コード記述
- 以下の内容をスクリプトエディタの任意のgsファイルに記述。
const targetTrigger = 'target' function main() { // 1時間後に削除される「10分ごとに実行されるトリガー」を作成。 createTrigger(targetTrigger, 10, 1); } // 対象トリガー function target(){ console.log('hello') } // トリガー作成 function createTrigger(name, minutes, hour){ // n分ごとに実行されるトリガー設定 ScriptApp.newTrigger(name).timeBased().everyMinutes(minutes).create(); // n時間後に上記で設定したトリガーを削除する。 // after(ミリ秒)を指定することで、ミリ秒後に1回だけ実行するトリガーの作成が可能。 if(hour > 0){ ScriptApp.newTrigger('deleteTrigger') .timeBased() .after(hour * 3.6e+6) .create(); } } // 対象トリガーを削除する関数 function deleteTrigger(){ const triggers = ScriptApp.getProjectTriggers(); for(const trigger of triggers){ if (trigger.getHandlerFunction() === targetTrigger) { ScriptApp.deleteTrigger(trigger); } } }
実行
- 記述後、main関数を実行して以下のように「対象トリガー」及び「 トリガー削除トリガー」の2つができていることを確認します。
- 確認して1時間後、再度トリガー設定を見て以下のように「対象トリガーの削除」及び「トリガー削除トリガーの無効化」となっていることを確認します。
- 以上です。
参考
アノテーション株式会社について
アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。